Dynomotion

Group: DynoMotion Message: 4069 From: bradodarb Date: 2/23/2012
Subject: Motion Profiles
Hello Tom,


On single and multi-axis moves, can I specify a trapezoidal motion profile vs an "S curve" smoothed profile?

On some devices I can toggle between the two types and on others I can configure the Jerk parameter. Jerk seem to either mean something different on the Kflop than I am accustomed to.

If kflop supports both of these profiles, what is the best way to toggle?


Thank you,
Brad Murry
Group: DynoMotion Message: 4071 From: Tom Kerekes Date: 2/23/2012
Subject: Re: Motion Profiles
Hi Brad,
 
Basically "S curve" (3rd order) is only supported for single axis moves.  Although multiple axes can be commanded to move at the same time, they are not coordinated in a manner that they follow a path.  KMotion refers to this as "Independent" motion.  Single axis S Curve motion is relatively straight forward and KFLOP has the capability to do all the trajectory planning for Independent motion on its own including on-the-fly blending of Moves and Jogs.  There is really no support (or need) for this in the C++ libraries as everything is handled in KFLOP.  In this way Motions commanded from the PC or from within KFLOP are identical.  Positions, Velocities, Accelerations, and Jerk are all in units of raw counts in KFLOP.  If you wish to do 2nd order Independent motion you can do so by setting the Jerk to a huge value (ie 1000X the Acceleration so the full acceleration is applied in 1ms).
 
I think KFLOP uses the normal definition of Jerk which is the rate of change of acceleration.  Some other controllers sometimes specify a "Jerk Time" or "Jerk Percentage" which somehow indirectly defines the Jerk.
 
Multi-axis coordinated motion Trajectory Planning is much more complex and we are currently only able to plan 2nd order motion using the CoordMotion Library that runs on the PC.  It has its own settings of Resolution, Velocity, and Acceleration and uses units of Inches.  Jerk is not specified and allowed to be infinite.
 
HTH
TK
 

Group: DynoMotion Message: 4073 From: Brad Murry Date: 2/23/2012
Subject: Re: Motion Profiles

Hello Tom,

 

Thank makes sense.

 

I did not mean for coordinated S curve profiles, just multi-axis moves(usually for rapids) using it and each axis arrives at its destination independently. 

 

I guess in these situations I would just iterate thru each axis I want to move and command them individually, no prob.

 

 

Are you saying that all moves have smoothing applied?  So can I get a trapezoidal profile by setting the jerk to/near zero?

 

High speed boring is where we primarily require trap moves to minimize dwell and prevent tool burning, it is pretty violent but gets the job done to spec(time  vs quality) and the tooling lasts longer.

 

I think I am accustomed to seeing jerk as a percentage and now I am confused to what the other devices are deriving the percentage from because you have stated that a general rule of thumb is to have your jerk set to 10x the accel.

 

Maybe that is 1.0 to the other devices….

 

 

Thanks for the detailed info.

 

-Brad Murry

 

 

From: DynoMotion@yahoogroups.com [mailto:DynoMotion@yahoogroups.com] On Behalf Of Tom Kerekes
Sent: Thursday, February 23, 2012 4:29 PM
To: DynoMotion@yahoogroups.com
Subject: Re: [DynoMotion] Motion Profiles

 

 

Hi Brad,

 

Basically "S curve" (3rd order) is only supported for single axis moves.  Although multiple axes can be commanded to move at the same time, they are not coordinated in a manner that they follow a path.  KMotion refers to this as "Independent" motion.  Single axis S Curve motion is relatively straight forward and KFLOP has the capability to do all the trajectory planning for Independent motion on its own including on-the-fly blending of Moves and Jogs.  There is really no support (or need) for this in the C++ libraries as everything is handled in KFLOP.  In this way Motions commanded from the PC or from within KFLOP are identical.  Positions, Velocities, Accelerations, and Jerk are all in units of raw counts in KFLOP.  If you wish to do 2nd order Independent motion you can do so by setting the Jerk to a huge value (ie 1000X the Acceleration so the full acceleration is applied in 1ms).

 

I think KFLOP uses the normal definition of Jerk which is the rate of change of acceleration.  Some other controllers sometimes specify a "Jerk Time" or "Jerk Percentage" which somehow indirectly defines the Jerk.

 

Multi-axis coordinated motion Trajectory Planning is much more complex and we are currently only able to plan 2nd order motion using the CoordMotion Library that runs on the PC.  It has its own settings of Resolution, Velocity, and Acceleration and uses units of Inches.  Jerk is not specified and allowed to be infinite.

 

HTH

TK

 

 

From: bradodarb <bradodarb@...>
To: DynoMotion@yahoogroups.com
Sent: Thursday, February 23, 2012 2:48 PM
Subject: [DynoMotion] Motion Profiles

 

 

Hello Tom,

On single and multi-axis moves, can I specify a trapezoidal motion profile vs an "S curve" smoothed profile?

On some devices I can toggle between the two types and on others I can configure the Jerk parameter. Jerk seem to either mean something different on the Kflop than I am accustomed to.

If kflop supports both of these profiles, what is the best way to toggle?

Thank you,
Brad Murry

 

Group: DynoMotion Message: 4074 From: Tom Kerekes Date: 2/23/2012
Subject: Re: Motion Profiles
Hi Brad,
 
Yes all moves are s curves that use Jerk so just set Jerk to a big value if you want Trapazoidal moves.
 
The is a risk commanding moves down and up from the PC is that there may be a delay if the PC is not responsive.  Most of the time it will work fine but once in a while there might be a delay depending on what Windows is doing.  To guarantee timing of multiple moves you would need to use a C program.
 
Regards
TK

Group: DynoMotion Message: 4076 From: Kyrylo Perederiy Date: 2/24/2012
Subject: Re: Motion Profiles
I was under the impression that when I perform StraightFeed() movements, the Jerk parameter will limit the rate of change of acceleration. Now it does not sound like it’s honoring jerk at all...
 
Is StraightFeed() method any different in this regard? When I tried to use it long time ago, it did not appear to be completely coordinated to me. Each axis was arriving at commanded position mostly independently.
 
In my pick&place application, I definitely want to be able to control jerk in certain situations, but jog() along is not going to cut it.
 
Thanks,
Kyryl
 
Sent: Thursday, February 23, 2012 4:55 PM
Subject: Re: [DynoMotion] Motion Profiles
 
 

Hi Brad,
 
Yes all moves are s curves that use Jerk so just set Jerk to a big value if you want Trapazoidal moves.
 
The is a risk commanding moves down and up from the PC is that there may be a delay if the PC is not responsive.  Most of the time it will work fine but once in a while there might be a delay depending on what Windows is doing.  To guarantee timing of multiple moves you would need to use a C program.
 
Regards
TK
 
Group: DynoMotion Message: 4077 From: Tom Kerekes Date: 2/24/2012
Subject: Re: Motion Profiles
Hi Kyryl,
 
You might be confusing StraightTraverse() and StraightFeed().  StraightTraverse() will move each axis independently while honoring Jerk.   StraightFeed will move in a coordinated manner along a straight line but not honor a Jerk Limit.
 
Regards
TK
 

Group: DynoMotion Message: 4079 From: Kyrylo Perederiy Date: 2/24/2012
Subject: Re: Motion Profiles
Yes, I meant to say StraightTraverse(). It’s good to know that it honors Jerk. Will use it instead of StraightFeed in critical places.
 
Sent: Friday, February 24, 2012 1:54 PM
Subject: Re: [DynoMotion] Motion Profiles
 
 

Hi Kyryl,
 
You might be confusing StraightTraverse() and StraightFeed().  StraightTraverse() will move each axis independently while honoring Jerk.   StraightFeed will move in a coordinated manner along a straight line but not honor a Jerk Limit.
 
Regards
TK